package com.ict.web.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ict.web.domain.AnnualDeclaration;
import com.ict.web.domain.AnnualProjectPlan;
import com.ict.web.dto.AnnualDeclarationAddDto;
import com.ict.web.dto.AnnualDeclarationEditDto;
import com.ict.web.dto.AnnualProjectPlanListDto;
import com.ict.web.vo.AnnualDeclarationVo;
import com.ict.web.vo.AnnualProjectPlanListVo;

/**
 * 年度申报--刘杰Service接口
 *
 * @author liujie
 * @date 2022-02-25
 */
public interface IAnnualDeclarationService extends IService<AnnualDeclaration>
{
    /**
     * 查询 年度项目计划 名称
     */
    public List<AnnualProjectPlanListVo> selectAnnualName(AnnualProjectPlanListVo vo);

    /**
     * 查询年度申报--刘杰
     *
     * @param annualId 年度申报--刘杰主键
     * @return 年度申报--刘杰
     */
    public AnnualDeclarationVo selectAnnualDeclarationByAnnualId(Long annualId);

    /**
     * 查询年度申报--刘杰列表
     *
     * @param annualDeclaration 年度申报--刘杰
     * @return 年度申报--刘杰集合
     */
    public List<AnnualDeclaration> selectAnnualDeclarationList(AnnualDeclaration annualDeclaration);

    /**
     * 新增年度申报--刘杰
     *
     * @param dto 年度申报--刘杰
     * @return 结果
     */
    public Long insertAnnualDeclaration(AnnualDeclarationAddDto dto);

    /**
     * 修改年度申报--刘杰
     *
     * @param annualId 年度申报--刘杰
     * @return 结果
     */
    public int updateAnnualDeclaration(AnnualDeclarationEditDto dto, Long annualId);

    /**
     * 删除年度申报--刘杰信息
     *
     * @param annualId 年度申报--刘杰主键
     * @return 结果
     */
    public int deleteAnnualDeclarationByAnnualId(Long annualId);

    /**
     * 统计项目单位数量、项目数量、总金额、各类项目数量
     */
    public void totalProjectNumber(AnnualProjectPlan annualProjectPlan, AnnualDeclarationAddDto dto);

    /**
     * 获取建设单位和所属部门
     * @param orgCategory
     * @return
     */
    public String[] getUnitAndDept(String orgCategory);
}
